package com.xbongbong.pro.statistic.pojo.dto;

import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.pro.statistic.pojo.DataSetAttrReflectJoinPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;

/**
 * @author zcp
 * @version v1.0
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class DataSetAttrReflectJoinDTO extends BaseDTO {
    private static final long serialVersionUID = -2877334843197291813L;
    /**
     * 是否“合并连接字段”，1是0否
     */
    private Integer mergeLinkField;
    /**
     * 连接方式3种："left","right","inner"
     * 用于结合mergeLinkField“合并连接字段” 控制返回 DataSetAttrReflectJoinVO.field内的enable属性
     * @see com.xbongbong.paas.enums.bi.DataSetJoinEnum
     */
    @NotBlank(message = "{dto.msg.dataSetAttrReflectJoin.join.NotBlank}")
    private String join;
    /**
     * 左表连接字段
     */
    @NotEmpty(message = "{dto.msg.dataSetAttrReflectJoin.leftAttr.NotEmpty}")
    private List<String> leftAttr;
    /**
     * 右表连接字段
     */
    @NotEmpty(message = "{dto.msg.dataSetAttrReflectJoin.rightAttr.NotEmpty}")
    private List<String> rightAttr;
    /**
     * 连接节点左表（接入的左表）
     */
    @NotNull(message = "{dto.msg.dataSetAttrReflectJoin.left.NotNull}")
    @Valid
    private DataSetAttrReflectJoinPojo left;
    /**
     * 连接节点右表（接入的右表）
     */
    @NotNull(message = "{dto.msg.dataSetAttrReflectJoin.right.NotNull}")
    @Valid
    private DataSetAttrReflectJoinPojo right;
    /**
     * 隐藏字段
     */
   /* @NotNull(message = "{dto.msg.dataSetAttrReflectJoin.right.NotNull}")
    @Valid*/
    private DataSetAttrReflectJoinPojo hideLeft;
    
    private DataSetAttrReflectJoinPojo hideRight;
}
